package com.whfc.ms.api.fmam.service;

import com.whfc.common.result.ListData;
import com.whfc.common.result.PageData;
import com.whfc.fmam.entity.dto.FmamMatDTO;
import com.whfc.fmam.entity.dto.FmamMatImportResultDTO;
import com.whfc.fmam.entity.dto.FmamMatTypeDTO;
import com.whfc.fmam.entity.qo.MatAddQO;
import com.whfc.fmam.entity.qo.MatEditQO;
import com.whfc.fmam.entity.qo.MatTypeAddQO;
import com.whfc.fmam.entity.qo.MatTypeEditQO;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

/**
 * @description 材料字典
 * @author sun_guodong
 * @date 2019-11-18
 */

public interface MatService {


    /**
     * 材料类别列表
     * @param deptId
     * @param keyword
     * @return
     */
    ListData<FmamMatTypeDTO> matTypeList(Integer deptId, String keyword) ;

    /**
     * 获取所有材料类别列表
     * @param deptId
     * @return
     */
    ListData<FmamMatTypeDTO> matTypeOptionList(Integer deptId);

    /**
     * 新增材料类别
     * @param request
     */
    void matTypeAdd(MatTypeAddQO request);

    /**
     * 编辑材料类别
     * @param request
     */
    void matTypeEdit(MatTypeEditQO request);

    /**
     * 删除材料类别
     * @param id
     */
    void matTypeDel(Long id);

    /**
     * 材料列表
     * @param matTypeId
     * @param pageNum
     * @param pageSize
     * @param keyword
     * @return
     */
    PageData<FmamMatDTO> matList(Long matTypeId, Integer pageNum, Integer pageSize, String keyword);

    /**
     * 获取所有的材料列表
     * @param deptId
     * @param matTypeId
     * @return
     */
    ListData<FmamMatDTO> matList(Integer deptId, Long matTypeId);

    /**
     * 新增材料
     * @param request
     */
    void matAdd(MatAddQO request);

    /**
     * 编辑材料
     * @param request
     */
    void matEdit(MatEditQO request);

    /**
     * 删除材料
     * @param id
     */
    void matDel(Long id);

    /**
     * 批量导入材料
     * @param file
     */
    FmamMatImportResultDTO importExcel(Integer deptId, MultipartFile file) throws IOException;



}
